From a108cd00521e6f5f49ddfeb40d48511927d2bc94 Mon Sep 17 00:00:00 2001 From: "kaf24@firebug.cl.cam.ac.uk" Date: Wed, 2 Nov 2005 11:21:46 +0100 Subject: [PATCH] The attached patch to 1) fix a 64-bit bug with some of the data packing, and 2) adds a workaround for an Infineon TPM hardware bug. Signed-off-by: Vinnie Scarlata, Joseph Cihula (@intel.com) --- tools/vtpm_manager/manager/vtpm_manager.c | 9 ++++++--- tools/vtpm_manager/manager/vtsp.c | 4 ++-- tools/vtpm_manager/util/buffer.h | 12 ------------ tools/vtpm_manager/util/tcg.h | 14 ++++++++++++++ 4 files changed, 22 insertions(+), 17 deletions(-) diff --git a/tools/vtpm_manager/manager/vtpm_manager.c b/tools/vtpm_manager/manager/vtpm_manager.c index 8d71ab0776..48143fbc3b 100644 --- a/tools/vtpm_manager/manager/vtpm_manager.c +++ b/tools/vtpm_manager/manager/vtpm_manager.c @@ -140,12 +140,15 @@ TPM_RESULT VTPM_Create_Service(){ TPM_AUTHDATA sharedsecret; TPMTRYRETURN( VTSP_OSAP(vtpm_globals->manager_tcs_handle, - TPM_ET_SRK, - 0, + TPM_ET_KEYHANDLE, + TPM_SRK_KEYHANDLE, (const TPM_AUTHDATA*)&vtpm_globals->srk_usage_auth, &sharedsecret, &osap) ); - + + osap.fContinueAuthSession = FALSE; + + TPMTRYRETURN( VTSP_CreateWrapKey( vtpm_globals->manager_tcs_handle, TPM_KEY_BIND, (const TPM_AUTHDATA*)&vtpm_globals->storage_key_usage_auth, diff --git a/tools/vtpm_manager/manager/vtsp.c b/tools/vtpm_manager/manager/vtsp.c index 1351be55b2..c2cbc43a0b 100644 --- a/tools/vtpm_manager/manager/vtsp.c +++ b/tools/vtpm_manager/manager/vtsp.c @@ -180,8 +180,8 @@ TPM_RESULT VTSP_OSAP(const TCS_CONTEXT_HANDLE hContext, Crypto_GetRandom((BYTE *) &nonceOddOSAP, sizeof(TPM_NONCE) ); TPMTRYRETURN( TCSP_OSAP( hContext, - TPM_ET_SRK, - 0, + entityType, + entityValue, nonceOddOSAP, &auth->AuthHandle, &auth->NonceEven, diff --git a/tools/vtpm_manager/util/buffer.h b/tools/vtpm_manager/util/buffer.h index ea5f048af9..9fdf7ea60f 100644 --- a/tools/vtpm_manager/util/buffer.h +++ b/tools/vtpm_manager/util/buffer.h @@ -37,18 +37,6 @@ #include // for pointer NULL #include "tcg.h" -// structure to enable use of FMT_SIZE32_DATA in BSG_Unpack -typedef struct pack_buf_t { - UINT32 size; - BYTE * data; -} pack_buf_t; - -// and a const version for Pack -typedef struct pack_constbuf_t { - UINT32 size; - const BYTE* data; -} pack_constbuf_t; - typedef UINT32 tpm_size_t; // first version, probably will be expanded... diff --git a/tools/vtpm_manager/util/tcg.h b/tools/vtpm_manager/util/tcg.h index 741ffe21fd..79f31ba688 100644 --- a/tools/vtpm_manager/util/tcg.h +++ b/tools/vtpm_manager/util/tcg.h @@ -191,6 +191,20 @@ typedef struct TCS_AUTH { TPM_AUTHDATA HMAC; } TCS_AUTH; +// structures for dealing with sizes followed by buffers in all the +// TCG structure. +typedef struct pack_buf_t { + UINT32 size; + BYTE * data; +} pack_buf_t; + +typedef struct pack_constbuf_t { + UINT32 size; + const BYTE* data; +} pack_constbuf_t; + + + // **************************** CONSTANTS ********************************* // BOOL values -- 2.30.2